ãœãããŠã§ã¢å質ã®åäžãã³ã©ãã¬ãŒã·ã§ã³ãç¥èå ±æãä¿é²ããã³ãŒãã¬ãã¥ãŒã®ãã¹ããã©ã¯ãã£ã¹ãç¶²çŸ ããå æ¬çãªã¬ã€ãã
ã³ãŒãã¬ãã¥ãŒïŒå質ä¿èšŒã®ããã®ç©¶æ¥µã¬ã€ã
仿¥ã®æ¥éã«å€åãããœãããŠã§ã¢éçºã®ç¶æ³ã«ãããŠãã³ãŒãå質ã®ç¢ºä¿ã¯æéèŠã§ãããœãŒã¹ã³ãŒããäœç³»çã«æ€æ»ããã³ãŒãã¬ãã¥ãŒã¯ããããéæããäžã§æ¥µããŠéèŠãªåœ¹å²ãæãããŸããåã«ãã°ãèŠã€ããã ãã§ãªããã³ã©ãã¬ãŒã·ã§ã³ãä¿é²ããç¥èãå ±æããããè¯ã補åãå ±ã«æ§ç¯ããããšãç®æããŸãããã®ã¬ã€ãã§ã¯ãã°ããŒãã«ãªéçºããŒã ã«é©çšå¯èœãªãã¹ããã©ã¯ãã£ã¹ãããŒã«ãæŠç¥ãç¶²çŸ ããã³ãŒãã¬ãã¥ãŒã®å æ¬çãªæŠèŠãæäŸããŸãã
ã³ãŒãã¬ãã¥ãŒãšã¯ïŒ
ã³ãŒãã¬ãã¥ãŒãšã¯ãäžäººãŸãã¯è€æ°ã®éçºè ãå¥ã®éçºè ã®ã³ãŒããæ€æ»ããããã»ã¹ã§ããããã¯ãæœåšçãªæ¬ é¥ãç¹å®ããã³ãŒãã£ã³ã°èŠçŽã培åºããã³ãŒãããŒã¹å šäœã®ä¿å®æ§ãšå¯èªæ§ãåäžãããããšãç®çãšããå質ä¿èšŒæŽ»åã§ããããã¯ååçãªåãçµã¿ã§ãããã¬ãã¥ãŒæ åœè ã¯å»ºèšçãªãã£ãŒãããã¯ãæäŸããäœæè ã¯æèµ·ãããåé¡ã«å¯ŸåŠããŸãã广çãªã³ãŒãã¬ãã¥ãŒã¯ãæè¡çè² åµã®åæžãšãœãããŠã§ã¢ãããžã§ã¯ãã®é·æçãªå¥å šæ§ã®åäžã«å€§ããè²¢ç®ããŸãã
ã³ãŒãã¬ãã¥ãŒã®å©ç¹
å ç¢ãªã³ãŒãã¬ãã¥ãŒããã»ã¹ãå°å ¥ãããšãæ°å€ãã®å©ç¹ãåŸãããŸãïŒ
- ã³ãŒãå質ã®åäžïŒã³ãŒãã¬ãã¥ãŒã¯ãåå¥ã®éçºäžã«èŠéããããã¡ãªãã°ãã»ãã¥ãªãã£è匱æ§ãããã©ãŒãã³ã¹ã®ããã«ããã¯ãæ€åºããã®ã«éåžžã«å¹æçã§ãã
- éçºã³ã¹ãã®åæžïŒéçºãµã€ã¯ã«ã®æ©ã段éã§åé¡ãç¹å®ãä¿®æ£ããããšã§ãã³ãŒãã¬ãã¥ãŒã¯è²»çšã®ãããææ»ããäžæµã®åé¡ãé²ããŸãã
- ç¥èå ±æã®åŒ·åïŒã³ãŒãã¬ãã¥ãŒã¯ãéçºè ãäºãã«åŠã³ããã¹ããã©ã¯ãã£ã¹ãå ±æããã³ãŒãããŒã¹ãžã®çè§£ãæ·±ããããã®ãã©ãããã©ãŒã ãæäŸããŸããè¥æéçºè ã¯çµéšè±å¯ãªååããåŠã³ããã®éããŸãç¶ãã§ãã
- ã³ãŒãã£ã³ã°èŠçŽã®åŸ¹åºïŒã³ãŒãã¬ãã¥ãŒã¯ãã³ãŒãã確ç«ãããã³ãŒãã£ã³ã°èŠçŽãã¬ã€ãã©ã€ã³ã«æºæ ããŠããããšãä¿èšŒããäžè²«æ§ãšä¿å®æ§ãä¿é²ããŸããããã¯ãå€§èŠæš¡ãªåæ£ããŒã ã§ã¯ç¹ã«éèŠã§ãã
- ããŒã ã³ã©ãã¬ãŒã·ã§ã³ã®æ¹åïŒã³ãŒãã¬ãã¥ãŒã¯ãéçºè éã®ã³ã©ãã¬ãŒã·ã§ã³ãšãªãŒãã³ãªã³ãã¥ãã±ãŒã·ã§ã³ã®æåãè²ã¿ãŸããããã«ãããéçºè ã¯ã³ãŒãã®èšèšãã¢ãŒããã¯ãã£ãå®è£ ã®è©³çްã«ã€ããŠè°è«ããããšã奚å±ãããŸãã
- æè¡çè² åµã®åæžïŒåé¡ãæ©æã«å¯ŸåŠããããšã§ãã³ãŒãã¬ãã¥ãŒã¯æè¡çè² åµã®èç©ãé²ããŸããæè¡çè² åµã¯ããœãããŠã§ã¢ãããžã§ã¯ãã®é·æçãªä¿å®æ§ãšã³ã¹ãã«å€§ãã圱é¿ããå¯èœæ§ããããŸãã
- ããè¯ãèšèšïŒå€ãã®å Žåãæ°é®®ãªèŠç¹ã«ãã£ãŠãããåªãããæ¡åŒµæ§ãä¿å®æ§ã®é«ãèšèšã¢ãããŒããèŠã€ããããšããããŸãã
- ã»ãã¥ãªãã£è匱æ§ã®æ€åºïŒç¹å®ã®çš®é¡ã®ã³ãŒãã¬ãã¥ãŒã¯ãã¯ãã¹ãµã€ãã¹ã¯ãªããã£ã³ã° (XSS) ã SQLã€ã³ãžã§ã¯ã·ã§ã³ã®åé¡ãªã©ãäžè¬çãªWebã¢ããªã±ãŒã·ã§ã³ã®è匱æ§ãéçºã®åææ®µéã§ç¹å®ã§ããŸãã
ã³ãŒãã¬ãã¥ãŒã®çš®é¡
ã³ãŒãã¬ãã¥ãŒã«ã¯ããã€ãã®ç°ãªãã¢ãããŒãããããããããã«é·æãšçæããããŸãïŒ
- ãã©ãŒãã«ãªã³ãŒãã¬ãã¥ãŒïŒããã¯ãç¹å®ã®åœ¹å²ãšè²¬ä»»ã䌎ããæ§é åããã峿 Œãªããã»ã¹ã䌎ããŸããéåžžãæ£åŒãªæ€æ»äŒè°ãšè©³çްãªããã¥ã¡ã³ãäœæãå«ãŸããŸãã
- ã€ã³ãã©ãŒãã«ãªã³ãŒãã¬ãã¥ãŒïŒããã¯ããã¢ããã°ã©ãã³ã°ããªãŒããŒã¶ã·ã§ã«ããŒã¬ãã¥ãŒãªã©ãããã¢ãããã¯ã§æ§é åãããŠããªãã¢ãããŒãã§ããéåžžããã©ãŒãã«ãªã³ãŒãã¬ãã¥ãŒãããè¿ éã§æè»ã§ãã
- ãã¢ããã°ã©ãã³ã°ïŒ2人ã®éçºè ãåãã³ãŒãã§å ±åäœæ¥ãè¡ããäžæ¹ãã³ãŒããæžããããäžæ¹ããªã¢ã«ã¿ã€ã ã§ã¬ãã¥ãŒããŸããããã¯ããšã©ãŒãçºèŠããç¥èãå ±æããããã®éåžžã«å¹æçãªæ¹æ³ã§ãã
- ãªãŒããŒã¶ã·ã§ã«ããŒã¬ãã¥ãŒïŒéçºè ãã¬ãã¥ãŒæ åœè ãšäžç·ã«èªåã®ã³ãŒãããŠã©ãŒã¯ã¹ã«ãŒããããžãã¯ãšèšèšäžã®æ±ºå®ã説æããŸããããã¯ãå°ããªã³ãŒã倿Žã«ã€ããŠãã£ãŒãããã¯ãè¿ éãã€ç°¡åã«å ¥æããæ¹æ³ã§ãã
- ããŒã«æ¯æŽã¬ãã¥ãŒïŒããã¯ãã³ãŒãã¬ãã¥ãŒããã»ã¹ãæ¯æŽããããã«èªåããŒã«ã䜿çšããããšã䌎ããŸãããããã®ããŒã«ã¯ãæœåšçãªæ¬ é¥ã®ç¹å®ãã³ãŒãã£ã³ã°èŠçŽã®åŸ¹åºãã³ãŒãå質ã«é¢ããã¡ããªã¯ã¹ã®æäŸã«åœ¹ç«ã¡ãŸãã
广çãªã³ãŒãã¬ãã¥ãŒã®ããã®ãã¹ããã©ã¯ãã£ã¹
ã³ãŒãã¬ãã¥ãŒã®å©ç¹ãæå€§éã«åŒãåºãã«ã¯ã以äžã®ãã¹ããã©ã¯ãã£ã¹ã«åŸãããšãéèŠã§ãïŒ
1. æç¢ºãªã³ãŒãã£ã³ã°èŠçŽã®ç¢ºç«
ãã¹ãŠã®éçºè ãéµå®ãã¹ãã³ãŒãã£ã³ã°èŠçŽãšã¬ã€ãã©ã€ã³ãå®çŸ©ããææžåããŸãããããã®èŠçŽã¯ãã³ãŒãã®æžåŒèšå®ãåœåèŠåãã³ã¡ã³ãä»ãããšã©ãŒåŠçãªã©ã®åŽé¢ãç¶²çŸ ãã¹ãã§ããäžè²«æ§ã®ããã³ãŒãã£ã³ã°èŠçŽã«ãããã³ãŒãã¯èªã¿ããããçè§£ãããããä¿å®ãããããªããŸãããªã³ã¿ãŒãéçè§£æããŒã«ã¯ããããã®èŠçŽãèªåçã«åŒ·å¶ããã®ã«åœ¹ç«ã¡ãŸãã
äŸïŒJavaScriptãããžã§ã¯ãã«åãçµãã°ããŒãã«ããŒã ã¯ãAirbnb JavaScript Style Guideãæ¡çšããç¹å®ã®ãããžã§ã¯ãèŠä»¶ã«åãããŠä¿®æ£ãããããããŸãããããã«ãããå Žæãèæ¯ã«é¢ãããããã¹ãŠã®ããŒã ã¡ã³ããŒéã§äžè²«ããã³ãŒãã£ã³ã°ã¹ã¿ã€ã«ãä¿èšŒãããŸãã
2. ã³ãŒã倿Žã¯å°ããçŠç¹ãçµã
å€§èŠæš¡ã§è€éãªã³ãŒã倿Žã¯ã广çã«ã¬ãã¥ãŒããã®ãå°é£ã§ãã倧ããªå€æŽã¯ãããå°ããã管çããããå¡ã«åå²ããŠãã ãããããããã®å€æŽã¯ãç¹å®ã®ã¿ã¹ã¯ãŸãã¯æ©èœã«çŠç¹ãåœãŠãã¹ãã§ããããã«ãããã¬ãã¥ãŒæ åœè ãã³ãŒããçè§£ããæœåšçãªåé¡ãç¹å®ãããããªããŸããå°ããçŠç¹ãçµã£ã倿Žã¯ããªã°ã¬ãã·ã§ã³ãå°å ¥ãããªã¹ã¯ã軜æžããŸãã
3. æç¢ºãã€ç°¡æœãªèª¬æãæäŸãã
ã¬ãã¥ãŒã®ããã«ã³ãŒããæåºããéã¯ã倿Žå 容ã«ã€ããŠæç¢ºãã€ç°¡æœãªèª¬æãæäŸããŠãã ããã倿Žã®ç®çãåãããã¢ãããŒããæœåšçãªãªã¹ã¯ãå¶éã«ã€ããŠèª¬æããŸããããã«ãããã¬ãã¥ãŒæ åœè ã倿Žã®ã³ã³ããã¹ããçè§£ããæãéèŠãªé åã«æ³šæãéäžããã®ã«åœ¹ç«ã¡ãŸãã
4. ã¬ãã¥ãŒããŒã«ã广çã«æŽ»çšãã
ã³ãŒãã¬ãã¥ãŒããŒã«ã掻çšããŠãããã»ã¹ãå¹çåããçç£æ§ãåäžãããŸãããããã®ããŒã«ã¯ãã³ãŒãã®æžåŒèšå®ãéçè§£æãåé¡è¿œè·¡ãªã©ãå€ãã®ã¿ã¹ã¯ãèªååã§ããŸãããŸããéçºè ãå ±åäœæ¥ãè¡ããã³ãŒãã®å€æŽã«ã€ããŠè°è«ãã鲿ã远跡ããããã®ãã©ãããã©ãŒã ãæäŸããŸãã
人æ°ã®ããã³ãŒãã¬ãã¥ãŒããŒã«ã®äŸïŒ
- GitHubãã«ãªã¯ãšã¹ãïŒGitHubã®çµã¿èŸŒã¿æ©èœã§ãéçºè ãã¬ãã¥ãŒãšå ±åäœæ¥ã®ããã«ã³ãŒã倿Žãæåºã§ããŸãã
- GitLabããŒãžãªã¯ãšã¹ãïŒGitHubãã«ãªã¯ãšã¹ããšåæ§ã«ãGitLabããŒãžãªã¯ãšã¹ãã¯ã³ãŒãã¬ãã¥ãŒãšå ±åäœæ¥ã®ããã®ãã©ãããã©ãŒã ãæäŸããŸãã
- Bitbucketãã«ãªã¯ãšã¹ãïŒBitbucketãããã©ãããã©ãŒã å ã§ã³ãŒãã¬ãã¥ãŒã®ããã®ãã«ãªã¯ãšã¹ããæäŸããŠããŸãã
- PhabricatorïŒã³ãŒãã¬ãã¥ãŒããŒã«ãå«ãWebããŒã¹ã®ãœãããŠã§ã¢éçºã³ã©ãã¬ãŒã·ã§ã³ã¹ã€ãŒãã§ãã
- CrucibleïŒAtlassianãæäŸããå ±åã³ãŒãã¬ãã¥ãŒããŒã«ã§ãã
- GerritïŒäž»ã«GitããŒã¹ã®ãããžã§ã¯ãã§äœ¿çšãããWebããŒã¹ã®ã³ãŒãã¬ãã¥ãŒããã³ãããžã§ã¯ã管çããŒã«ã§ãã
5. æãéèŠãªåé¡ã«çŠç¹ãåœãŠã
ã³ãŒããã¬ãã¥ãŒããéã¯ãæœåšçãªæ¬ é¥ãã»ãã¥ãªãã£è匱æ§ãããã©ãŒãã³ã¹ã®ããã«ããã¯ãªã©ãæãéèŠãªåé¡ã«åªå é äœãä»ããŸããè»œåŸ®ãªæžåŒèšå®ãã¹ã¿ã€ã«ã«é¢ããåé¡ã«æ·±å ¥ãããªãã§ãã ãããã³ãŒãå質ãšä¿å®æ§ã«æã倧ããªåœ±é¿ãäžããé åã«çŠç¹ãåœãŠãŠãã ããããã£ãŒãããã¯ã¯å»ºèšçã«ããäœè ã§ã¯ãªãã³ãŒãã«çŠç¹ãåœãŠãããšãå¿ããªãã§ãã ããã
6. 建èšçãªãã£ãŒãããã¯ãæäŸãã
ãã£ãŒãããã¯ãæäŸããéã¯ãæç¢ºã§å ·äœçãã€å»ºèšçã«è¡ããŸãããããªã倿Žãææ¡ããã®ãã説æãã代æ¿ã®è§£æ±ºçãææ¡ãæäŸããŠãã ãããå人çãªæ»æãæ¹å€ã¯é¿ããŠãã ãããç®æšã¯ã³ãŒããæ¹åããããšã§ãããäœè ã«äžå¿«ãªæãããããããšã§ã¯ãªãããšãå¿ããªãã§ãã ããããã£ãŒãããã¯ãè¯å®çã«æããææ¡ããã倿Žã®å©ç¹ã«çŠç¹ãåœãŠãŠãã ãããç°ãªãã³ãŒãã£ã³ã°ã¹ã¿ã€ã«ã奜ã¿ãå°éããé æ ®ããŸãããã
7. ã¬ãã¥ãŒãã¿ã€ã ãªãŒã«è¡ã
ã³ãŒã倿Žãã¬ãã¥ãŒã§é·æéæ»çããªãããã«ããŠãã ãããã¿ã€ã ãªãŒãªã¬ãã¥ãŒã¯ãåé¡ãè¿ éã«ç¹å®ããä¿®æ£ãããããšãä¿èšŒããã³ãŒãããŒã¹ã«ããã«äŒæããã®ãé²ããŸããåççãªæéå ã«ã³ãŒãã¬ãã¥ãŒãå®äºããããã«ããµãŒãã¹ã¬ãã«ã¢ã°ãªãŒã¡ã³ãïŒSLAïŒã確ç«ããŠãã ããã
8. å¯èœãªéãèªååãã
ã³ãŒãã®æžåŒèšå®ããªã³ãã£ã³ã°ãéçè§£æãªã©ã®å埩çãªã¿ã¹ã¯ãèªååããŸããããã«ãããã¬ãã¥ãŒæ åœè ã¯ããéèŠãªåé¡ã«éäžã§ãã人çãã¹ã®ãªã¹ã¯ã軜æžãããŸããèªååããŒã«ãCI/CDãã€ãã©ã€ã³ã«çµ±åããã³ãŒããã¡ã€ã³ã³ãŒãããŒã¹ã«ããŒãžãããåã«åé¡ããªããèªåçã«ãã§ãã¯ãããããã«ããŠãã ããã
9. ã³ãŒãã¬ãã¥ãŒã®ã¡ããªã¯ã¹ã远跡ãã
å®äºããã¬ãã¥ãŒæ°ãã¬ãã¥ãŒå®äºã«ããã£ãæéãã¬ãã¥ãŒäžã«ç¹å®ãããæ¬ 饿°ãªã©ãã³ãŒãã¬ãã¥ãŒã«é¢é£ããäž»èŠãªã¡ããªã¯ã¹ã远跡ããŸããããã«ãããã³ãŒãã¬ãã¥ãŒããã»ã¹ã®æå¹æ§ã«é¢ãã貎éãªæŽå¯ãåŸãããæ¹åã®äœå°ãããé åãç¹å®ããã®ã«åœ¹ç«ã¡ãŸãã
10. ç¶ç¶çæ¹åã®æåãè²ã
ã³ãŒãã¬ãã¥ãŒã¯ãç¶ç¶çæ¹åã®é²è¡äžã®ããã»ã¹ã§ããã¹ãã§ãã宿çã«ã³ãŒãã¬ãã¥ãŒããã»ã¹ãèŠçŽããæ¹åã§ããé åãç¹å®ããŠãã ãããéçºè ããã£ãŒãããã¯ãææ¡ãå ±æããããšã奚å±ããŸããç®æšã¯ãã³ãŒãå質ãå°éãããå šå¡ãã³ãŒãããŒã¹ã®æ¹åã«å°œåããæåãç¯ãããšã§ãã
11. ã¬ãã¥ãŒæ åœè ã®æéãèæ ®ãã
ã¬ãã¥ãŒæ åœè ã®æéãèæ ®ããŠãã ãããäœè ãšããŠã以äžã®ç¹ã«çæããã¬ãã¥ãŒããã»ã¹ãå¯èœãªéã容æã«ããŸãããïŒ
- å倿Žã®ç®çã説æããæç¢ºãªã³ãããã¡ãã»ãŒãžãäœæããã
- 倧ããªå€æŽããããå°ããã管çããããã³ãããã«åå²ããã
- ãã«ãªã¯ãšã¹ãã§å€æŽã®å æ¬çãªèª¬æãæäŸããã
- ã³ãŒããã¬ãã¥ãŒã®ããã«æåºããåã«ãæçœãªåé¡ã«å¯ŸåŠããã
12. äœè ã¯èªèº«ã®ã³ãŒããã¬ãã¥ãŒãã¹ãã§ãã
ã³ãŒããã¬ãã¥ãŒã®ããã«æåºããåã«ãäœè ã¯èªèº«ã®ã³ãŒãã培åºçã«ã¬ãã¥ãŒãã¹ãã§ããããã«ãããä»ã®äººã«èŠãããåã«ãæçœãªãšã©ãŒãã¹ã¿ã€ã«ã®åé¡ãèªåã§çºèŠã§ããŸããããã¯ãå質ãžã®ã³ãããã¡ã³ããšã¬ãã¥ãŒæ åœè ã®æéãžã®æ¬æã瀺ããŸãã
13. ã¬ãã¥ãŒã®è² è·ã管çãã
åã ã®éçºè ã«é床ãªã³ãŒãã¬ãã¥ãŒã®è² æ ããããªãã§ãã ãããã¬ãã¥ãŒã®è² è·ãããŒã å šäœã§åçã«åæ£ããŸããããã¬ãã¥ãŒãããã³ãŒãããŒã¹ã®ç¹å®ã®åéã«ãããå°éç¥èã«åºã¥ããŠã¬ãã¥ãŒæ åœè ãå²ãåœãŠãããšãæ€èšããŠãã ããã
14. ç¥èå ±æã奚å±ãã
ã³ãŒãã¬ãã¥ãŒã¯ç¥èå ±æã®çŽ æŽãããæ©äŒã§ããéçºè ãã¬ãã¥ãŒããã»ã¹äžã«è³ªåããããç¥èãå ±æãããããããšã奚å±ããŠãã ãããããã«ãããã³ãŒãããŒã¹å šäœã®çè§£ãæ·±ãŸããåŠç¿ã®æåãè²ãŸããŸãã
15. ç°ãªãã¹ãã«ã¬ãã«ãèæ ®ãã
ã¬ãã¥ãŒæ åœè ãå²ãåœãŠãéã«ã¯ãäœè ãšã¬ãã¥ãŒæ åœè ã®äž¡æ¹ã®ã¹ãã«ã¬ãã«ãèæ ®ããŠãã ãããè¥æéçºè ãšçµéšè±å¯ãªã¬ãã¥ãŒæ åœè ãçµã¿åãããŠãã¡ã³ã¿ãŒã·ãããšã¬ã€ãã³ã¹ãæäŸããŸããããããã¯åæ¹ã«ãšã£ãŠè²ŽéãªåŠç¿æ©äŒãšãªãåŸãŸãã
ã³ãŒãã¬ãã¥ãŒãã§ãã¯ãªã¹ã
培åºçãªã³ãŒãã¬ãã¥ãŒã確å®ã«ãããããã¬ãã¥ãŒããã»ã¹ãã¬ã€ããããã§ãã¯ãªã¹ãã䜿çšããŠãã ããã以äžã«ãµã³ãã«ãã§ãã¯ãªã¹ãã瀺ããŸãïŒ
- ã³ãŒãã®æ£ç¢ºæ§ïŒã³ãŒãã¯æå³ãããæ©èœãæ£ããå®è£ ããŠããŸããïŒ
- ã³ãŒãã®å¯èªæ§ïŒã³ãŒãã¯èªã¿ããããçè§£ããããã§ããïŒ
- ã³ãŒãã®ä¿å®æ§ïŒã³ãŒãã¯ä¿å®ããããã倿Žããããã§ããïŒ
- ã³ãŒãã£ã³ã°èŠçŽïŒã³ãŒãã¯ç¢ºç«ãããã³ãŒãã£ã³ã°èŠçŽã«æºæ ããŠããŸããïŒ
- ãšã©ãŒåŠçïŒã³ãŒãã¯é©åã«ãšã©ãŒãåŠçããŠããŸããïŒ
- ã»ãã¥ãªãã£ïŒã³ãŒãã«ã»ãã¥ãªãã£è匱æ§ã¯ãããŸãããïŒ
- ããã©ãŒãã³ã¹ïŒã³ãŒãã¯é«æ§èœã§å¹ççã§ããïŒ
- ãã¹ãïŒã³ãŒãã«å¯ŸããŠååãªãã¹ãããããŸããïŒ
- ããã¥ã¡ã³ãïŒã³ãŒãã¯ååã«ææžåãããŠããŸããïŒ
- è€éãïŒã³ãŒãã¯äžå¿ èŠã«è€éã§ã¯ãããŸãããïŒç°¡ç¥åã§ããŸããïŒ
- éè€ïŒéè€ããã³ãŒãã¯ãããŸãããïŒãªãã¡ã¯ã¿ãªã³ã°ã§ããŸããïŒ
- äŸåé¢ä¿ïŒãã¹ãŠã®äŸåé¢ä¿ã¯å¿ èŠã§ããïŒãããã¯ææ°ã§ããïŒ
- ã¹ã±ãŒã©ããªãã£ïŒã³ãŒãã¯å°æ¥ã®æé·ã«å¯Ÿå¿ã§ããããã¹ã±ãŒã©ãã«ã§ããïŒ
- ã¢ã¯ã»ã·ããªãã£ïŒã³ãŒãã¯éãããæã€ãŠãŒã¶ãŒã«ãšã£ãŠã¢ã¯ã»ã·ãã«ã§ããïŒïŒè©²åœããå ŽåïŒ
- åœéå/å°ååïŒI18N/L10NïŒïŒã³ãŒãã¯é©åã«åœéåããã³å°ååãããŠããŸããïŒïŒè©²åœããå ŽåïŒ
ã¬ãã¥ãŒã³ã¡ã³ããžã®å¯ŸåŠ
ã³ãŒããã¬ãã¥ãŒã®ããã«æåºããã ãã§ãäœè ã®è²¬ä»»ãçµããããã§ã¯ãããŸãããã¬ãã¥ãŒã³ã¡ã³ãã«è¿ éãã€å¹æçã«å¯ŸåŠããããšãéèŠã§ããã¬ãã¥ãŒã³ã¡ã³ãã«å¯ŸåŠããéã«ã¯ïŒ
- ã³ã¡ã³ããçè§£ããïŒå€æŽãå ããåã«ãã¬ãã¥ãŒæ åœè ã®ãã£ãŒãããã¯ãå®å šã«çè§£ããŠããããšã確èªããŠãã ãããäžæãªç¹ãããã°ãæç¢ºåãæ±ããŸãããã
- ãã¹ãŠã®ã³ã¡ã³ãã«è¿ä¿¡ããïŒããšãæèŠãåããªããŠããåã³ã¡ã³ãã«è¿ä¿¡ããŠãã ãããææ¡ããã倿Žãå®è£ ããªããšæ±ºããå Žåã¯ããã®çç±ã説æããŸãããã
- 倿Žãæ éã«å®è£ ããïŒæ°ããåé¡ãå°å ¥ããªãããã«ãæ éã«å€æŽãå ãã培åºçã«ãã¹ãããŠãã ããã
- ã³ãŒããæŽæ°ããïŒã¬ãã¥ãŒæ åœè ã®æžå¿µã«å¯ŸåŠããããã«ã³ãŒããæŽæ°ããŸãã
- ãã¹ããåå®è¡ããïŒå€æŽãå ããåŸãã³ãŒããåŒãç¶ãæ£ããæ©èœããããšã確èªããããã«ãé¢é£ãããã¹ãŠã®ãã¹ããåå®è¡ããŸãã
- æç¢ºã«äŒããïŒè¡ã£ã倿Žãã¬ãã¥ãŒæ åœè ã«æç¢ºã«äŒããŸãã
- å人çã«åãæ¢ããªãïŒã³ãŒãã¬ãã¥ãŒã¯ã³ãŒããæ¹åããããã®ãã®ã§ãããäœè ãæ¹å€ããããã®ãã®ã§ã¯ãªãããšãå¿ããªãã§ãã ããããã£ãŒãããã¯ãå人çã«åãæ¢ããªãã§ãã ããã
- ãã£ãŒãããã¯ããåŠã¶ïŒåãåã£ããã£ãŒãããã¯ãå©çšããŠãã³ãŒãã£ã³ã°ã¹ãã«ãåäžãããå°æ¥åãééããç¯ããªãããã«ããŸãããã
ã¢ãžã£ã€ã«éçºã«ãããã³ãŒãã¬ãã¥ãŒ
ã³ãŒãã¬ãã¥ãŒã¯ãã¢ãžã£ã€ã«éçºææ³ã®äžå¯æ¬ ãªèŠçŽ ã§ããç¶ç¶çæ¹åãã³ã©ãã¬ãŒã·ã§ã³ãé »ç¹ãªãã£ãŒãããã¯ãšãã£ãã¢ãžã£ã€ã«ã®ååãšå®ç§ã«åèŽããŸããã¢ãžã£ã€ã«ããŒã ã§ã¯ãã³ãŒãã¬ãã¥ãŒã¯éåžžãé »ç¹ãã€éå ¬åŒã«è¡ãããŸããç®æšã¯ãã³ãŒããè¿ éãã€å¹ççã«ã¬ãã¥ãŒããè¿ éãªå埩ãšããªããªãŒãå¯èœã«ããããšã§ãã
ã°ããŒãã«ãªèŠç¹
ã°ããŒãã«ããŒã ãšååããå Žåãã³ãŒãã¬ãã¥ãŒã¯äžå±€éèŠæ§ãå¢ããŸããç°ãªãããŒã ã¡ã³ããŒã¯ãçµéšã¬ãã«ãæåçèæ¯ãã³ãŒãã£ã³ã°ã¹ã¿ã€ã«ãç°ãªãå ŽåããããŸããã³ãŒãã¬ãã¥ãŒã¯ãäžè²«æ§ã確ä¿ããç¥èãå ±æããæåçãªéãããåããããã®éèŠãªãã©ãããã©ãŒã ãæäŸããŸããéçºè ã®å Žæã«é¢ããããçè§£ããããä¿å®ããããçµ±äžãããã³ãŒãããŒã¹ã®äœæã«åœ¹ç«ã¡ãŸãã
ã°ããŒãã«ããŒã ã«ããã課é¡ãšè§£æ±ºçïŒ
- ã¿ã€ã ãŸãŒã³ã®éãïŒç°ãªãã¿ã€ã ãŸãŒã³ã«å¯Ÿå¿ã§ãããããã³ãŒãã¬ãã¥ãŒãæŠç¥çã«ã¹ã±ãžã¥ãŒã«ããŸããéçºè ãéœåã®è¯ãæéã«ã³ãŒããã¬ãã¥ãŒã§ããéåæã¬ãã¥ãŒããŒã«ã®äœ¿çšãæ€èšããŠãã ããã
- ã³ãã¥ãã±ãŒã·ã§ã³ã®éå£ïŒèª€è§£ãé¿ããããã«ãæç¢ºã§ç°¡æœãªèšèã䜿çšããŸããéçºè ã質åããããå¿ èŠã«å¿ããŠæç¢ºåãæ±ãããããããšã奚å±ããŸããè€éãªæŠå¿µã説æããã®ã«åœ¹ç«ã€ããã¥ã¡ã³ããäŸãæäŸããŠãã ããã
- æåçãªéãïŒã³ãã¥ãã±ãŒã·ã§ã³ã¹ã¿ã€ã«ããã£ãŒãããã¯ã®å¥œã¿ã«æåçãªéããããããšã«çæããŠãã ãããäžéšã®æåã¯ããçŽæ¥çã§æå®çã§ããäžæ¹ãä»ã®æåã¯ãã鿥çã§åŸ®åŠãããããŸãããããã«å¿ããŠã³ãã¥ãã±ãŒã·ã§ã³ã¹ã¿ã€ã«ã調æŽããŠãã ããã
- èšèªã®å£ïŒãã¹ãŠã®éçºè ãã³ãŒãã¬ãã¥ãŒã«å¹æçã«åå ã§ããååãªè±èªèœåãæã£ãŠããããšã確èªããŠãã ãããå¿ èŠã«å¿ããŠèšèªãµããŒããšãªãœãŒã¹ãæäŸããŠãã ããã
éçè§£æãšèªåã³ãŒãã¬ãã¥ãŒ
éçè§£æããŒã«ã¯ãæœåšçãªæ¬ é¥ãã»ãã¥ãªãã£è匱æ§ãã³ãŒãã£ã³ã°èŠçŽéåãã³ãŒãããèªåçã«è§£æã§ããŸãããããã®ããŒã«ãã³ãŒãã¬ãã¥ãŒããã»ã¹ã«çµ±åããããšã§ãå¹çãšæå¹æ§ãå€§å¹ ã«åäžãããããšãã§ããŸããéçè§£æã¯å€ãã®äžè¬çãªãšã©ãŒãèªåçã«ææã§ãããããã¬ãã¥ãŒæ åœè ã¯ããè€éã§åŸ®åŠãªåé¡ã«éäžã§ããããã«ãªããŸãã
éçè§£æããŒã«ã®äŸïŒ
- SonarQubeïŒã³ãŒãå質ã®ç¶ç¶çãªæ€æ»ã®ããã®äººæ°ã®ãããªãŒãã³ãœãŒã¹ãã©ãããã©ãŒã ã§ãã
- CoverityïŒå æ¬çãªæ¬ 饿€åºãæäŸããåçšéçè§£æããŒã«ã§ãã
- CheckstyleïŒJavaã³ãŒããã³ãŒãã£ã³ã°èŠçŽã«ç §ãããŠãã§ãã¯ããããŒã«ã§ãã
- ESLintïŒJavaScriptã³ãŒãããªã³ãã£ã³ã°ããããã®ããŒã«ã§ãã
- PMDïŒJavaãJavaScriptããã®ä»ã®ããã°ã©ãã³ã°èšèªã®æœåšçãªåé¡ãè§£æããããã®ããŒã«ã§ãã
ã³ãŒãã¬ãã¥ãŒã®æªæ¥
ã³ãŒãã¬ãã¥ãŒã¯åžžã«é²åããŠããŸãã人工ç¥èœïŒAIïŒãæ©æ¢°åŠç¿ïŒMLïŒãªã©ã®æ°èæè¡ã¯ãã³ãŒãã¬ãã¥ãŒã®æªæ¥ã«ãããŠãŸããŸãéèŠãªåœ¹å²ãæããæºåãã§ããŠããŸããAIãæŽ»çšããããŒã«ã¯ãæœåšçãªæ¬ é¥ãèªåçã«ç¹å®ããã³ãŒãã®æ¹åãææ¡ããããã«ã¯ã³ãŒããçæããããšãã§ããŸãããããã®ããŒã«ã¯ãã³ãŒãã¬ãã¥ãŒã«ãããæäœæ¥ã®å€ããèªååããã®ã«åœ¹ç«ã¡ãéçºè ãããåµé çã§æŠç¥çãªäœæ¥ã«éäžã§ããããã«ãªããŸãã
çµè«
ã³ãŒãã¬ãã¥ãŒã¯ããœãããŠã§ã¢å質ã®ç¢ºä¿ãã³ã©ãã¬ãŒã·ã§ã³ã®ä¿é²ãç¥èå ±æã®ããã®äžå¯æ¬ ãªãã©ã¯ãã£ã¹ã§ãããã®ã¬ã€ãã§æŠèª¬ãããŠãããã¹ããã©ã¯ãã£ã¹ã«åŸãããšã§ãéçºããŒã å šäœã«å©çãããããå ç¢ã§å¹æçãªã³ãŒãã¬ãã¥ãŒããã»ã¹ãäœæã§ããŸããå°èŠæš¡ãªã¹ã¿ãŒãã¢ããã§åããŠããå Žåã§ããå€§èŠæš¡ãªå€åœç±äŒæ¥ã§åããŠããå Žåã§ããã³ãŒãã¬ãã¥ãŒã¯ããè¯ããœãããŠã§ã¢ãæ§ç¯ããéçºã³ã¹ããåæžããããŒã ã®å£«æ°ãåäžãããã®ã«åœ¹ç«ã¡ãŸãã
ã³ãŒãã¬ãã¥ãŒã¯åã«ãã°ãèŠã€ããããšã ãã§ã¯ãªãããšãå¿ããªãã§ãã ãããããã¯å質ãšç¶ç¶çæ¹åã®æåãç¯ãããšã§ããã³ãŒãã¬ãã¥ãŒããéçºè ãšããŠåŠã³ãååããæé·ããæ©äŒãšããŠæããŸãããã